home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.4)
-
- import os
- from Tkinter import *
- import tkMessageBox
-
- class FileList:
- from EditorWindow import EditorWindow
-
- def __init__(self, root):
- self.root = root
- self.dict = { }
- self.inversedict = { }
- self.vars = { }
-
-
- def open(self, filename, action = None):
- if not filename:
- raise AssertionError
- filename = self.canonize(filename)
- if os.path.isdir(filename):
- tkMessageBox.showerror('File Error', '%r is a directory.' % (filename,), master = self.root)
- return None
-
- key = os.path.normcase(filename)
- if self.dict.has_key(key):
- edit = self.dict[key]
- edit.top.wakeup()
- return edit
-
- if action:
- return action(filename)
- else:
- return self.EditorWindow(self, filename, key)
-
-
- def gotofileline(self, filename, lineno = None):
- edit = self.open(filename)
- if edit is not None and lineno is not None:
- edit.gotoline(lineno)
-
-
-
- def new(self, filename = None):
- return self.EditorWindow(self, filename)
-
-
- def close_all_callback(self, event):
- for edit in self.inversedict.keys():
- reply = edit.close()
- if reply == 'cancel':
- break
- continue
-
- return 'break'
-
-
- def close_edit(self, edit):
-
- try:
- key = self.inversedict[edit]
- except KeyError:
- print "Don't know this EditorWindow object. (close)"
- return None
-
- if key:
- del self.dict[key]
-
- del self.inversedict[edit]
- if not self.inversedict:
- self.root.quit()
-
-
-
- def filename_changed_edit(self, edit):
- edit.saved_change_hook()
-
- try:
- key = self.inversedict[edit]
- except KeyError:
- print "Don't know this EditorWindow object. (rename)"
- return None
-
- filename = edit.io.filename
- if not filename:
- if key:
- del self.dict[key]
-
- self.inversedict[edit] = None
- return None
-
- filename = self.canonize(filename)
- newkey = os.path.normcase(filename)
- if newkey == key:
- return None
-
- if self.dict.has_key(newkey):
- conflict = self.dict[newkey]
- self.inversedict[conflict] = None
- tkMessageBox.showerror('Name Conflict', 'You now have multiple edit windows open for %r' % (filename,), master = self.root)
-
- self.dict[newkey] = edit
- self.inversedict[edit] = newkey
- if key:
-
- try:
- del self.dict[key]
- except KeyError:
- pass
- except:
- None<EXCEPTION MATCH>KeyError
-
-
- None<EXCEPTION MATCH>KeyError
-
-
- def canonize(self, filename):
- if not os.path.isabs(filename):
-
- try:
- pwd = os.getcwd()
- except os.error:
- pass
-
- filename = os.path.join(pwd, filename)
-
- return os.path.normpath(filename)
-
-
-
- def _test():
- fixwordbreaks = fixwordbreaks
- import EditorWindow
- import sys
- root = Tk()
- fixwordbreaks(root)
- root.withdraw()
- flist = FileList(root)
- if sys.argv[1:]:
- for filename in sys.argv[1:]:
- flist.open(filename)
-
- else:
- flist.new()
- if flist.inversedict:
- root.mainloop()
-
-
- if __name__ == '__main__':
- _test()
-
-